#coding:utf-8
from  comment.models import db
from datetime import datetime
from werkzeug.security import generate_password_hash,check_password_hash
#用户的模型类
class User(db.Model):
    __tablename__='t_user'
    id=db.Column(db.BIGINT,primary_key=True,autoincrement=True)
    username=db.Column(db.String(64))
    # 数据库表中存放的是 加密之后的密文，采用flask提供的hash算法:生成一个128位密文
    password = db.Column(db.String(128), doc='密码')
    icon = db.Column(db.String(5000), doc='用户头像图片')
    email = db.Column(db.String(100), doc='邮箱')
    nick_name = db.Column(db.String(200), doc='昵称')
    note = db.Column(db.String(500), doc='备注')
    phone = db.Column(db.String(11), doc='手机号')

    login_time=db.Column(db.DateTime,default=datetime.now(),doc='用户登录时间')
    create_time=db.Column(db.DateTime,default=datetime.now(),doc='用户注册时间')
    #onupdate对数据发生改变后将当前系统时间修改到update_time
    update_time=db.Column(db.DateTime,default=datetime.now(),onupdate=datetime.now(),doc='更新时间')
    status=db.Column(db.Integer,doc='状态')#0代表正常

    # 是一个pwd属性的property函数，只读
    @property
    def pwd(self):
        return self.password
    #是一个pwd属性的setter函数，只写
    @pwd.setter
    def pwd(self,x_password):
        self.password = generate_password_hash(x_password) #根据flask提供的算法进行加密

    def check_pwd(self,x_password):
        #验证
        return check_password_hash(self.password,x_password)